This invention relates to the field of computer systems. More particularly, a method and apparatus are provided for managing a set of server processes so as to provide higher stability and availability of the processes.
Software tends to become unstable when executed for long, continuous periods. In addition, transactional software tends to become increasingly unstable as more and more transactions are processed. This does not bode well for servers (e.g., web servers, database servers), applications and other processes that need to operate for long periods of time and/or process large numbers of transactions or service requests.
An organization that executes software for handling transactions and/or performing other processing may operate multiple copies of a particular process. This duplication may help minimize disruption to the organization's operations if one process fails. However, even if the organization's architecture can tolerate failure of one process, if multiple processes fail in the same time frame the architecture may be overwhelmed. In addition, such a scheme does nothing to prevent a process from becoming unstable.
There is therefore a need for a method and an apparatus for increasing the stability of a set of software processes, to alleviate the danger of multiple simultaneous failures.